package com.hlf.modules.api.service;


import com.hlf.common.utils.ReturnResult;
import com.hlf.modules.api.entity.TokenEntity;

import java.util.Map;

/**
 * 用户Token
 * 
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2017-03-23 15:22:07
 */
public interface TokenService {

    TokenEntity queryByUserId(Long userId);

    TokenEntity queryByToken(String token);

    void save(TokenEntity token);

    void update(TokenEntity token);

    /**
     * 生成token
     * @param userId  用户ID
     * @return        返回token相关信息
     */
    Map<String, Object> createToken(long userId);

    /**
     * 生成token
     * @param userId  用户ID
     */
    ReturnResult sysCreateToken(long userId);

    /**
     * 删除token
     */
    ReturnResult deleteToken(long userId);

    /**
     * 退出，修改token值
     * @param userId  用户ID
     */
    void logout(long userId);
}
